// var data = {
//     "bitmex": {
//         "futures": {
//             "20201225": {
//                 "type": "futures",
//                 "date": "20201225",
//                 "delta": 0.0019437762713511676,
//                 "gamma": 0,
//                 "vega": 0,
//                 "theta": 0,
//                 "unrealized_pnl": -0.0001942
//             }
//         }
//     },
//     "deribit": {
//         "futures": {
//             "20200925": {
//                 "type": "futures",
//                 "date": "20200925",
//                 "delta": -0.001956729,
//                 "gamma": 0,
//                 "vega": 0,
//                 "theta": 0,
//                 "unrealized_pnl": 0.000234225
//             },
//             "20201225": {
//                 "type": "futures",
//                 "date": "20201225",
//                 "delta": 1.914351767,
//                 "gamma": 0,
//                 "vega": 0,
//                 "theta": 0,
//                 "unrealized_pnl": -0.281278891
//             },
//             "20210326": {
//                 "type": "futures",
//                 "date": "20210326",
//                 "delta": -0.000947837,
//                 "gamma": 0,
//                 "vega": 0,
//                 "theta": 0,
//                 "unrealized_pnl": -0.000066465
//             }
//         },
//         "options": {
//             "20200925": {
//                 "type": "options",
//                 "date": "20200925",
//                 "delta": 0.7232099999999999,
//                 "gamma": -0.000009999999999999999,
//                 "vega": 0.8333500000000011,
//                 "theta": -6.964060000000002,
//                 "unrealized_pnl": -0.063965127
//             },
//             "20201225": {
//                 "type": "options",
//                 "date": "20201225",
//                 "delta": -8.134099999999998,
//                 "gamma": 0.0026100000000000003,
//                 "vega": 644.81441,
//                 "theta": -230.76828,
//                 "unrealized_pnl": -5.313253459999999
//             },
//             "20210326": {
//                 "type": "options",
//                 "date": "20210326",
//                 "delta": 7.4113999999999995,
//                 "gamma": 0.00077,
//                 "vega": 399.77319,
//                 "theta": -85.95433,
//                 "unrealized_pnl": -0.8081319259999994
//             }
//         },
//         "swaps": {}
//     },
//     "hbprop": {
//         "futures": {
//             "q": {
//                 "type": "futures",
//                 "date": "q",
//                 "delta": 0.010596178064533902,
//                 "gamma": 0,
//                 "vega": 0,
//                 "theta": 0,
//                 "unrealized_pnl": 0.0001215049019236
//             },
//             "t": {
//                 "type": "futures",
//                 "date": "t",
//                 "delta": 0.02135279569484933,
//                 "gamma": 0,
//                 "vega": 0,
//                 "theta": 0,
//                 "unrealized_pnl": 0.0010602094989656
//             }
//         }
//     },
//     "okprop": {
//         "futures": {
//             "20200925": {
//                 "type": "futures",
//                 "date": "20200925",
//                 "delta": -2.1749933515643165,
//                 "gamma": 0,
//                 "vega": 0,
//                 "theta": 0,
//                 "unrealized_pnl": 0.027455320000000002
//             },
//             "20201225": {
//                 "type": "futures",
//                 "date": "20201225",
//                 "delta": 0.3962390152397391,
//                 "gamma": 0,
//                 "vega": 0,
//                 "theta": 0,
//                 "unrealized_pnl": 0.01191044
//             }
//         }
//     },
//     "otc": {
//         "futures": {
//             "20200918": {
//                 "type": "futures",
//                 "date": "20200918",
//                 "delta": 0.00024307940772243833,
//                 "gamma": 0,
//                 "vega": 0,
//                 "theta": 0,
//                 "unrealized_pnl": -4288.2375
//             }
//         },
//         "options": {
//             "20200917": {
//                 "type": "options",
//                 "date": "20200917",
//                 "delta": 0.02012571,
//                 "gamma": 0.00003231981,
//                 "vega": 85.54032,
//                 "theta": -1245.55,
//                 "unrealized_pnl": -189.37748
//             }
//         }
//     }
// }

// var obj = {};
// this.rebuild(data, obj);
// console.log(JSON.stringify(obj, null, 4));

// rebuild(data, obj) {
//     var hc =false
//     Object.keys(data).forEach((element) => {
//       hc =false
//       if(!this.isNum(element) && element.length>1) {
//         obj[element] ={}
//         obj[element]['children'] =[] 
//         obj[element]['sum_delta'] =null 
//         obj[element]['sum_gamma'] =null 
//         obj[element]['sum_vega'] =null 
//         obj[element]['sum_theta'] =null 
//         obj[element]['sum_unrealized_pnl'] =null
//         Object.keys(data[element]).forEach((el,index,item) =>{
//           // console.log(el,data[element][el])
//           if(this.isNum(el) || el.length<2){
//             hc =true
//             obj[element]['children'].push(data[element][el])
//             if(data[element][el]['delta']){
//               obj[element]['sum_delta'] ==null ?0 : obj[element]['sum_delta']
//               obj[element]['sum_gamma'] =null ? 0 : obj[element]['sum_gamma'] 
//               obj[element]['sum_vega'] =null ?0 :obj[element]['sum_vega']
//               obj[element]['sum_theta'] =null ?0 :obj[element]['sum_theta'] 

//               obj[element]['sum_delta']+=data[element][el]['delta'];
//               obj[element]['sum_gamma']+=data[element][el]['gamma'];
//               obj[element]['sum_vega']+=data[element][el]['vega'];
//               obj[element]['sum_theta']+=data[element][el]['theta'];
//               obj[element]['sum_unrealized_pnl']+=data[element][el]['unrealized_pnl'];
//             }
//             //code + code =sum
//           }else{
//             return;
//           }
//         })
//         if(!hc){
//           this.rebuild(data[element],obj[element])
//         }
//         //剔除空对象
//         if (obj[element].children.length <= 0) {
//           delete obj[element].children
//         }    
//         if (obj[element]['sum_delta'] ==null) {
//           delete obj[element]['sum_delta']
//         }   
//         if (obj[element]['sum_gamma'] ==null) {
//           delete obj[element]['sum_gamma']
//         }  
//         if (obj[element]['sum_vega'] ==null) {
//           delete obj[element]['sum_vega']
//         }  
//         if (obj[element]['sum_theta'] ==null) {
//           delete obj[element]['sum_theta']
//         }  
//         if (obj[element]['sum_unrealized_pnl'] ==null) {
//           delete obj[element]['sum_unrealized_pnl']
//         }  
//       }
//     });
// }

// isNum(s) {
//     if (s) {
//         return !isNaN(s);
//     }
//     return false;
// }